
const express = require('express');
// 引入数据库
const db = require('../db/index');
// 引入模型对象
const Users = require('../models/users');
const router = new express.Router();
// 用户名和密码的正则匹配
const user_name_reg = /^[A-Za-z][A-Za-z0-9_]{4,19}$/;
const password_reg = /^[A-Za-z0-9.]{8,15}$/;
// 在此处写对应的增删改查的路由即可
// 注册
// 
router.post('/register',async(req,res)=>{
 
    console.log(req.body);

    console.log(user_name_reg.test(req.body.user_name));
    console.log(password_reg.test(req.body.password));
    // res.send('使用正则表达式测试用户名的格式');
    // 当浏览器提交过来的用户名和密码符合规则，存储到数据库，返回注册成功，如果有一个不符合规则，不存，返回用户名和密码格式错误请重新注册
    if(user_name_reg.test(req.body.user_name) && password_reg.test(req.body.password)){
    // 确保数据库连接成功
        await db;
        try{
            await Users.create(req.body);
            res.send('注册成功！！')
        }catch(e){
            console.log(e);
            res.send('注册不成功，请求重新注册！');
        }
    }else{
        res.send('用户名和密码格式错误，请重新注册');
    }
   
   
})
// 登录
router.post('/login',async(req,res)=>{
    await db;
    if(user_name_reg.test(req.body.user_name) && password_reg.test(req.body.password)){
        try{
            const result =await Users.findOne({user_name:req.body.user_name});
            console.log(result);
            // 查询到的result结果，对比密码是否匹配
            if(result.password == req.body.password){
                res.send('登录成功！！')
            }else{
                res.send('用户名或密码错误请重新登录！！');
            }
        }catch(e){
            console.log(e);
            res.send('用户名或密码错误请重新登录！！');
        }
       
    }else{
        res.send('用户名和密码不符合规则');
    }

})


// 测试路由器配置是否成功，当成功之后，写其他路由再出问题时，当测试完毕之后 一定要将测试代码注释或者删除
/* router.get('/test',(req,res)=>{
    console.log('test路由器配置是否成功');
    res.send('路由器配置是否成功！')
}) */
module.exports = router;
